re:Growth 2024 札幌で Amazon Q Developer について登壇しました #regrowth_sapporo #AWSreInvent
いわさです。
先日開催されたre:Growth 2024 札幌で Amazon Q Developer についてお話させて頂きました。
クラスメソッド札幌オフィスのイベントスペースで開催されました。
以下は会場準備中のワンシーンです。なぜか飾られるクラスメソッド歴代ジャケット+αたち。
発表内容
スライドはSpeaker Deckにアップロードしています。
発表内では Amazon Q Developer が登場するまでの経緯を振り返り、その後今回の re:Invent 2024 で発表された Amazon Q Developer 関係のアップデートを紹介しました。
登場するまでの経緯ブログ
まず、2022 年 7 月ごろに re:MARS 2022 で Amazon CodeWhisperer がプレビューリリースされています。GitHub Copilot 発表より約半年遅れくらいでした。
その後生成 AI ブームが始まった最中、Amazon は何を出してくるのか?と注目を集めていた中で 2023 年 12 月の re:Invent 2023 で Amazon Q が登場しました。
併せて Visual Studio Code などの IDE 上で Q と対話し、CodeWhisperer と併用して開発生産性を向上させる機能も同時リリースされています。
そして、2024 年 5 月、Amazon Q Developer が GA となり、CodeWhisperer の機能は Q Developer に取り込まれました。サヨナラ CodeWhisperer。
re:Invent 2024 の予選落ち
そんなコード生成周りを中心に開発者支援機能が集まった Amazon Q Developer でしたが、re:Invent 2024 では本戦のみでなく予選落ち(re:Invent 期間中の発表ではなく、その直前にアップデートアナウンスされるものたちの通称)がいくつかありました。
Eclipse IDE サポート
いくつかの IDE でサポートされていましたが、Eclipse についてもパブリックプレビューという形でサポートが開始されました。
まだ、誰もブログ書いてないな。書くか。
Java アップグレード変換の強化
ステップバイステップアップグレードおよびライブラリアップグレード機能が登場しました。
ライブラリはわかりやすいのだが、ステップバイステップがまだよくわかってないです。
これも...誰もブログ書いてないな。書くか。
Java アップグレード変換 CLI のリリース
もともと Q Code Transformation という形で CodeWhisperer の頃から存在していた機能で、VSCode あるいは IntelliJ IDEA がサポートされていたのですが、CLI でも使えるようになったというものです。
これも...誰も書いてないだと...。
マネジメントコンソールのパーソナライズ応答の強化
マネジメントコンソール上で Q に問い合わせを行うわけですが、この機能はユーザーが操作しているマネジメントコンソールの状態をコンテキストとして解釈し、回答内容を生成してくれるようになったというものです。
自然言語によるコスト分析機能
こちらはそのままですが自然言語でコスト分析を行えるようになりました。
従来は Cost Expolorer などでユーザーがフィルタリングしたりなんなりで分析を手動で行う必要がありましたが、Q に問い合わせるとうまいことやってくれるようになりました。
アプリケーション内の Oracle SQL ステートメントを検出し PostgreSQL に変換
こちらはおそらく Oracle 方言を PostgreSQL に変換してくれるようで、データベース内のプロシージャやテーブルであれば Schema Conversion Tool で今までやってくれたと思いますが、この機能では Q Developer がアプリケーションコード上に埋め込まれた SQL を変換してくれらしいです。これはすごいな。
これも誰もブログ書いてないです。なんてこったい。
O/R マッパー使わずに生で SQL 書いてる場合に有効ってところなんでしょうか。
re:Invent 2024 の本戦アップデート
予選落ちでも小粒な機能が色々と出ていましたが、本戦は革新的な機能が多いですね。
ユニットテスト生成機能
Q Developer がコードを解析してユニットテストを作成してくれます。
私が試した際にはコードが悪かったのかイマイチなテストが作成されてしまったのですが、次のように特定のリポジトリベースでテストやドキュメントの品質を検証している記事がありました。とてもおもしろいです。
ドキュメント生成機能
こちらはリポジトリコードから README を作成してくれる機能です。
サポートされているランタイムである必要がありますが、現在社内プロジェクトでも検証・評価を行っています。
コードレビュー機能
コード開発部分に関しても新しい機能が追加されています。
任意のタイミングで Amazon Q Developer にコードレビューを依頼することが出来ます。
コードの解説や、改善内容の提案を行ってくれます。
運用調査機能
こちらは運用フェーズで価値が出そうな機能でして、ワークロード上で問題が生じた際の問題解決を Q Developer が手伝ってくれます。
同時刻の関連するメトリクスなどを見つけてくれて、根本原因に気づきやすくしてくれたり、あるいは修正方法の提案も行ってくれます。
Transform 機能の強化(.NET、Mainframe、VMware)
前述のとおり Transoform 機能は主に Java がターゲットだったのですが、今回の期間中に .NET、Mainframe、VMware のサポートが追加されました。
.NET と Mainframe はちょっと私のほうでも試してみました。
.NET は従来からモダナイゼーションツールが提供されていましたが、Q Developer で包括的にうまいことやってくれます。ただ、従来のツールのほうがサポート範囲は広かったかもしれない。
Mainframe は Java への変換まで可能なのですが、ハードウェアの関係などもあって「そこまでするか?」みたいな場合もあると思います。
ただ、今回の機能には既存コードの解析やドキュメント作成を行う機能もあって、それだけでも使う価値ありそうだなと思いました。
GitLab Duo 統合機能
こちらは GitLab の Premium サブスクリプション以上で使えるようになるのですが、前述の Amazon Q Developer の様々な新機能が GitLab 上で使えるようになります。
ただし、利用にあたっての前提条件が厳しめで、まだ弊社でも誰もやってみたブログが書けていない状況です。
SDLC
そして、今回のアップデートによってコード開発支援のみでなく、SDLC(Systems Development Life Cycle)の様々なフェーズで Amazon Q Developer が活用出来るようになりました。
次のセッションでは SDLC の様々なフェーズをサポートするようになった Amazon Q Developer と、今後のビジョンなども紹介されていますのでこちらも見てみてください。
例としては、今はユーザーがエージェントと対話する半自動の形式ですが、将来的にはエージェント同士が対話する全自動を目指しているそうです。
さいごに
悪天候にも関わらず多くの方にご参加頂き、とても楽しかったです!
2025 年 1 月にまた札幌オフィスでイベントを行うので遊びにきてください!